perm filename PUBMAC.PUB[VLI,LSP] blob sn#379950 filedate 1978-09-08 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.<< PUB DECLARATIONS >>
C00011 00003	.<< TITLE PAGE >> BLANK PAGE
C00013 ENDMK
C⊗;
.<< PUB DECLARATIONS >>
.DEVICE TTY;
.PUBLISH←FALSE; << set to TRUE to get different headings for even/odd pages >>
.REALTTY←TRUE;	<< set to TRUE to get finite height pages >>
.SECPAGE ← (¬XCRIBL) ∧ (¬REALTTY);	<< each subsection starts a new page >>
.
.<< THESE ARE LEFT ON/OFF OVER THE WHOLE MANUSCRIPT FOR CONVENIENCE! >>
.TURN ON "{#%α"
.TURN OFF "-" << Too many minus signs would be mistaken for hyphens. >>
.
.
.
.	FONT 6 "SHD40"
.	FONT 5 "BASB30"		<< BOLD FONT FOR HEADINGS/TITLES >>
.	FONT 4 "FIX20"		<< SOME EXAMPLES: SMALL FIXED WIDTH FONT >>
.	FONT 3 "FIX25"		<< PREFORMATTED STUFF: FIXED WIDTH FONT >>
.	FONT 2 "BASI30"		<< ITALICS (UNDERLINED WORDS) >>
.	FONT 1 "BASL30"		<< NORMAL FONT: VARIABLE WIDTH >>
.
.IF XCRIBL THEN START
.
.	!XGPLFTMAR ← 216;
.	AT "⊗∪" STUFF "∩" ⊂
%2{}STUFF{}%*{  ⊃
.AT "ffi" ⊂ IF THISFONT ≤ 2 OR THISFONT = 5 THEN "}" ELSE "fαfαi" ⊃;
.AT "ffl" ⊂ IF THISFONT ≤ 2 OR THISFONT = 5 THEN "∞" ELSE "fαfαl" ⊃;
.AT "ff" ⊂ IF THISFONT ≤ 2 OR THISFONT = 5 THEN "≥" ELSE "fαf" ⊃;
.AT "fi" ⊂ IF THISFONT ≤ 2 OR THISFONT = 5 THEN "≡" ELSE "fαi" ⊃;
.AT "fl" ⊂ IF THISFONT ≤ 2 OR THISFONT = 5 THEN "∨" ELSE "fαl" ⊃;
.AT "--" ⊂ IF THISFONT ≤ 2 OR THISFONT = 5 THEN "¬" ELSE "-α-" ⊃;
.LN←4; RN←4; << Tables in the manual are NARROW LN,RN; >>
.	END
.
.	ELSE START
.	AT "⊗∪" STUFF "∩" ⊂
.STU←↑"STUFF";
{STU}{  ⊃
.LN←4; RN←4;
.	END;
.
.
.HLINES← IF XCRIBL THEN 55 ELSE 
.	IF REALTTY THEN 58 ELSE 999;	<< NUMBER OF LINES/PAGE >>
.WCHARS← IF XCRIBL THEN 81 ELSE 69;	<< NUMBER OF CHARS/LINE >>
.PAGE FRAME HLINES HIGH WCHARS WIDE;
.TITLE AREA HEADING LINES 1 TO 3 CHARS 1 TO WCHARS;
.IF REALTTY THEN START
.	BOTLINE ← HLINES-1;
.	TITLE AREA FOOTING LINE HLINES CHARS 1 TO WCHARS;
.	EVERY FOOTING (##);
.	<<The footing is simply to make sure we space down far enough!>>
.END ELSE START
.	BOTLINE ← HLINES;
.END
.AREA TEXTER LINES 4 TO BOTLINE CHARS 1 TO WCHARS;
.PLACE TEXTER;

.VARIABLE SECNAME, SSNAME, SSNUMBER;
.<< COUNT PAGE TO 999; this is now done in TITLE.PUB >>
.COUNT SECTION;
.COUNT SUBSECTION IN SECTION PRINTING "!.1";
.COUNT APPENDIX;

.MACRO SEC(NAME,ABBREV,PHRASE,LABEL) ⊂
.	SSNAME ← SECNAME ← IF "ABBREV" neq NULL THEN "ABBREV" ELSE "NAME";
.	SSNUMBER ← (SECTION+1)&"."
.SKIP TO COLUMN 1; IF XCRIBL AND EVEN PAGE THEN NEXT PAGE; LABEL  NEXT SECTION!;
.		BEGIN
.		CENTER
%5SECTION {!}
.		SKIP
.NAM←↑"NAME";
{NAM}%*
.		SKIP 3;
.		CAT("PHRASE","NAME");
.		SEND CONTENTS ⊂ SKIP 2;
∂4{SECTION!}∂8{NAM}→{PAGE!}{SKIP;⊃
.		END	⊃

.MACRO SS(NAME,PHRASE,LABEL) ⊂
.		SSNUMBER←SECTION!&"."&(SUBSECTION+1);
.		SSNAME←"NAME";
.		IF LINES≤9 OR SECPAGE THEN SKIP TO COLUMN 1;
.		LABEL  NEXT SUBSECTION!;
.		BEGIN
.		SKIP 3
.		CAT("PHRASE","NAME");
.IF XCRIBL THEN SEND CONTENTS ⊂
∂(13){!}∂(19)NAME\∞∀∂(WCHARS-2)→{PAGE!}
. ⊃
.ELSE		SEND CONTENTS ⊂
∂(13){!}∂(19)NAME\∞ ∞.∞ →{PAGE!}
. ⊃;
.		CENTER
%5{!}##NAME%*{	SKIP;
.		END		⊃

.MACRO SSP(NAME,PHRASE,LABEL) ⊂
.	SKIP TO COLUMN 1
.SS("NAME","PHRASE","LABEL")  ⊃


.MACRO CAT(PHRASE,NAME) ⊂IF "PHRASE" neq NULL THEN SEND INDEX ⊂}<{PAGE}≤PHRASE≥{⊃  ⊃

.MACRO REFREF(A,B)     ⊂ SEND INDEX ⊂}<⊗∪see∩ B≤A≥{⊃ ⊃
.MACRO SPECIALREF(A,B) ⊂ SEND INDEX ⊂}<⊗∪see B∩≤A≥{⊃ ⊃

.AT "⊗→" SPECIFIC "↔" GENERIC "←" ⊂
.IF "GENERIC" neq NULL THEN
.	START	SEND INDEX ⊂}<{PAGE}≤GENERIC, SPECIFIC≥{⊃; "SPECIFIC GENERIC"; END
.ELSE	START	SEND INDEX ⊂}<{PAGE}≤SPECIFIC≥{⊃; "SPECIFIC"; END ⊃

.RECURSIVE MACRO STANDARD BACK ⊂
.	IF (PUBLISH AND XCRIBL) THEN START
.		ODD HEADING(,,%5{SSNAME}    {PAGE}%*);
.		EVEN HEADING(%5{PAGE}    {SECNAME}%*,,);
.	END ELSE EVERY HEADING(,,%5{SSNAME}    {PAGE}%*);
.SSNAME ← "INDEX"; SECNAME ← SSNUMBER ← NULL
.	BEGIN FILL NOJUST INDENT 0,3; PREFACE 0;
.	AREA TEXTER LINES 4 TO BOTLINE IN 2 COLUMNS 3 APART;
.	PORTION INDEX;
.	IF XCRIBL AND EVEN PAGE THEN NEXT PAGE;
.	PLACE TEXTER;
.	SECNAME ← "INDEX";
.	WASWORD ← WASPG ← NULL ;
.	AT "<" PGNO "≤" PHRASE "≥" ⊂
.		IF "PHRASE"  neq  WASWORD THEN START BREAK }PHRASE   PGNO{ END
.		ELSE IF "PGNO"  neq  WASPG THEN }, PGNO{ ;
.		WASPG ← "PGNO" ; WASWORD ← "PHRASE" ; ⊃
%5INDEX%1
.SKIP
.	RECEIVE "≤≥"
.	END;
.SECNAME ← SSNAME ← NULL
.SSNUMBER ← NULL
.<<IF XCRIBL ∨ REALTTY THEN COUNT PAGE FROM 2 PRINTING "i" ELSE>>
.	COUNT PAGE PRINTING "i" ;
.PORTION CONTENTS
.AREA TEXTER LINES 4 TO BOTLINE CHARS 1 TO WCHARS;
.PLACE TEXTER;
.<< FILL NOJUST CRBREAK TURN ON "←→∂\∞" >>
.NOFILL; TURN ON "←→∂\∞";
.TABS 18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75;
←%5T A B L E   D E S   M A T I E R E S
.SKIP 3
SECTION→PAGE%1
.SKIP;
.RECEIVE
.⊃

.MACRO APP(NAME,ABBREV,PHRASE,LABEL) ⊂
.		SSNAME ← IF "ABBREV" neq NULL THEN "ABBREV" ELSE "NAME";
.		SSNUMBER ← NULL;
.		SECNAME ← "Appendix "&(APPENDIX+1);
.SKIP TO COLUMN 1; IF XCRIBL AND EVEN PAGE THEN NEXT PAGE; LABEL  NEXT APPENDIX!;
.		BEGIN
.		CENTER
%5APPENDIX {!}
.		SKIP
.NAM←↑"NAME"
{NAM}%*
.		SKIP 3
.		CAT("PHRASE","NAME");
.IF XCRIBL THEN SEND CONTENTS ⊂
∂4{APPENDIX!}∂8{NAM}\∞∀∂(WCHARS-2)→{PAGE!}
. ⊃
.ELSE		SEND CONTENTS ⊂
∂4{APPENDIX!}∂8{NAM}\∞ ∞.∞ →{PAGE!}
. ⊃;
.		END	⊃

.MACRO CENT (NAME,PHRASE) ⊂IF ((LINES ≤ 9) OR SECPAGE) THEN SKIP TO COLUMN 1;;
.CAT("PHRASE","NAME");
.BEGIN CENTER SKIP 3
%5NAME%*
.SKIP; END
.⊃

.MACRO SVERBATIM ⊂VERBATIM; SELECT 3; ⊃

.MACRO YON (LABEL) ⊂"page ";PAGE! LABEL⊃

.MACRO YONAPP (LABEL) ⊂"Appendix ";APPENDIX! LABEL⊃

.MACRO YONSEC (LABEL) ⊂"Section ";SECTION! LABEL⊃

.MACRO YONSS (LABEL) ⊂"Section ";SUBSECTION! LABEL⊃

.<< TITLE PAGE >> BLANK PAGE
.
.PORTION TITLEPAGE
.GROUP SKIP 10
.BeGIN CENTER
NOTES
.SKIP 2
SUR LE
.SKIP 2
VLISP 10.2
.SKIP 2
Mai 1977
.END
.SKIP 10
Resume : 
.SKIP
Modifications et ameliorations apportees a l'interprete
VLISP-10. Description  de l'assembleur (LAP)
et du compilateur (COMPIL).
.ONCE PREFACE 0
Ces notes ne sont qu'une mise a jour du 
.ONCE PREFACE 0
manuel de reference VLISP-10.
.ONCE PREFACE 0
RT 17-76, Departement d'Informatique, 
.ONCE PREFACE 0
Universite de Paris 8, Mars 1976.
.SKIP 7
.ONCE FLUSH RIGHT
Jerome CHAILLOUX
.<<Put tiitle page text here>>

.SECNAME ← SSNUMBER ← SSNAME ← NULL
.IF (PUBLISH AND XCRIBL) THEN START
.	ODD HEADING(%5{SSNUMBER},,{SSNAME}    {PAGE}%*);
.	EVEN HEADING(%5{PAGE}    {SECNAME},,{SSNUMBER}%*);
.END ELSE EVERY HEADING(%5{SSNUMBER}     {SECNAME},,{SSNAME}    {PAGE}%*);
.
.INSERT CONTENTS
.COUNT PAGE TO 999;
.PORTION MAINPORTION
.NEXT PAGE